This invention relates to a sum-of-products multiplier, such as may be used in a digital filter in which a binary representation of an input signal has to be multiplied by coefficients of different sizes.
A sum-of-products multiplier is used where one wishes to form a sum of a number of independent multiplications, i.e. ##EQU2## where v is the sum of products,
u.sub.j are the inputs and PA1 a.sub.j are the coefficients PA1 M is the number of coefficients or inputs. PA1 W.sub.k is the k'th binary weight, and PA1 N is the number of bits in a word. Note that the zero'th bit (U.sub.j,0) is conventially referred to as the least significant bit. PA1 k can take integer values in the range 0 to N-2. Thus for N=4 the following weights are used: ##EQU4## Therefore 0.75 is represented as 0110=1/2+1/4 and -0.625 is represented as 1011=-1+1/4+1/8. The data words u.sub.j are represented by bit-serial binary data streams with the least significant bit (U.sub.j,0) first.
Each of the inputs u.sub.j has to be multiplied by a respective coefficient a.sub.j and the resulting sub-products have to be added together to give an output.
If the inputs are represented by two's complement binary numbers they can be expressed as follows: ##EQU3## where u.sub.j,k is the k'th bit of the j'th input,
In the arrangement to be described herein the weights have the following values: EQU W.sub.k =2.sup.-(N-1-k) W.sub.N-1 =-1
where
At this point it is convenient to describe a single coefficient multiplier, i.e. the degenerate case with M=1 and j=0, in which case the summation is represented by ##EQU5## This shows that v can be formed by accumulating weighted multiples of the coefficient value a.sub.0.